Größer als bei if-Abfrage
Größer als bei if-Abfrage
am 18.06.2006 14:13:47 von Andreas Randolf
Hallo,
folgendes funktioniert mit PHP 5.1.4, aber nicht
mit PHP 4.4.2:
$bilddatei=$_GET['sorte'];
if ($bilddatei < 10) $bilddatei='0'.$bilddatei;
"sorte" ist ein Wert 1-80, der für $bilddatei
zweistellig sein muss.
Wie löse ich das Problem, sodass es mit beiden
PHP-Versionen geht? Wie kann ich die Länge der
Zeichenkette abfragen?
--
Gruß, Andreas
http://www.liegerad-fernweh.de
E-Mail bitte an die Antwortadresse und mit "Usenet" im Betreff
Re: Größer als bei if-Abfrage
am 18.06.2006 14:33:20 von Gregor Kofler
Andreas Randolf meinte:
> Hallo,
>
> folgendes funktioniert mit PHP 5.1.4, aber nicht
> mit PHP 4.4.2:
>
Was heisst "funktioniert nicht"?
> $bilddatei=$_GET['sorte'];
> if ($bilddatei < 10) $bilddatei='0'.$bilddatei;
>
> "sorte" ist ein Wert 1-80, der für $bilddatei
> zweistellig sein muss.
>
> Wie löse ich das Problem, sodass es mit beiden
> PHP-Versionen geht? Wie kann ich die Länge der
> Zeichenkette abfragen?
RTFM - insbesondere die Stringfunktionen.
$bilddatei = substr('0'.$_GET['sorte'], -2);
Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: Größer als bei if-Abfrage
am 18.06.2006 15:11:49 von Andreas Randolf
Hallo Gregor
> > folgendes funktioniert mit PHP 5.1.4, aber nicht
> > mit PHP 4.4.2:
> > $bilddatei=$_GET['sorte'];
> > if ($bilddatei < 10) $bilddatei='0'.$bilddatei;
> Was heisst "funktioniert nicht"?
Dass PHP 4.4.2 immer true sieht, sodass aus 05
005 wird.
> RTFM - insbesondere die Stringfunktionen.
Das Problem ist nicht das Lesen, sondern das
Auffinden der Funktionen. Ich habe nach etwas
wie LEN() gesucht, aber das scheint es nicht
zu geben.
> $bilddatei = substr('0'.$_GET['sorte'], -2);
Danke, ist natürlich eleganter.
--
Gruß, Andreas
http://www.liegerad-fernweh.de
E-Mail bitte an die Antwortadresse und mit "Usenet" im Betreff
Re: Größer als bei if-Abfrage
am 18.06.2006 15:33:23 von Joerg Behrens
Andreas Randolf schrieb:
> Hallo Gregor
>
>>> folgendes funktioniert mit PHP 5.1.4, aber nicht
>>> mit PHP 4.4.2:
>>> $bilddatei=$_GET['sorte'];
Ein isset() mit einbauen und Wert validieren, ansonsten mit einem
Default vorbelegen. Dann klappt es auch gefahrlos auf Servern mit
register_globals = ON.
>>> if ($bilddatei < 10) $bilddatei='0'.$bilddatei;
>
>> Was heisst "funktioniert nicht"?
>
> Dass PHP 4.4.2 immer true sieht, sodass aus 05
> 005 wird.
>
>> RTFM - insbesondere die Stringfunktionen.
>
> Das Problem ist nicht das Lesen, sondern das
> Auffinden der Funktionen. Ich habe nach etwas
> wie LEN() gesucht, aber das scheint es nicht
> zu geben.
Na soviele strlen() Funktionen gibt es ja nun nicht ;)
>> $bilddatei = substr('0'.$_GET['sorte'], -2);
>
> Danke, ist natürlich eleganter.
Nunja, elegant waere sprintf() mit einer entsprechenden Formatierung
oder evtl. str_pad().
Gruss
Joerg
Re: Größer als bei if-Abfrage
am 18.06.2006 16:32:30 von Rainer Hinz
Moin,
Andreas Randolf wrote:
> Hallo,
>=20
> folgendes funktioniert mit PHP 5.1.4, aber nicht
> mit PHP 4.4.2:
Aha...
> $bilddatei=3D$_GET['sorte'];
> if ($bilddatei < 10) $bilddatei=3D'0'.$bilddatei;
>=20
> "sorte" ist ein Wert 1-80, der für $bilddatei
> zweistellig sein muss.
Wenn Sorte ein numerischer Wert ist, warum nicht auch so behandeln?
$bilddatei=3D(int) $_GET['sorte'];
if ($bilddatei < 10) $bilddatei=3D'0'.$bilddatei;
Somit ist in $bilddatei auch ein Wert, führende Nullen sind ja weg.
> Wie löse ich das Problem, sodass es mit beiden
> PHP-Versionen geht? Wie kann ich die Länge der
> Zeichenkette abfragen?
Wenn du mit der Zeichenkette arbeiten willst, nehme strlen()
Gruß
Anni
Re: Größer als bei if-Abfrage
am 18.06.2006 16:34:56 von dev-null-use-reply-adress
Andreas Randolf schrieb:
> $bilddatei=$_GET['sorte'];
> if ($bilddatei < 10) $bilddatei='0'.$bilddatei;
>
> "sorte" ist ein Wert 1-80, der für $bilddatei
> zweistellig sein muss.
Du suchst http://de.php.net/sprintf
Gruß
JPM
Re: Größer als bei if-Abfrage
am 18.06.2006 16:38:46 von Johannes Mueller
Andreas Randolf schrieb:
>>> folgendes funktioniert mit PHP 5.1.4, aber nicht
>>> mit PHP 4.4.2:
>>> $bilddatei=$_GET['sorte'];
>>> if ($bilddatei < 10) $bilddatei='0'.$bilddatei;
>
>> Was heisst "funktioniert nicht"?
>
> Dass PHP 4.4.2 immer true sieht, sodass aus 05
> 005 wird.
....also ich wüsste jetzt nicht, warum php4 rausfinden sollte, das 05
nicht kleiner als 10 ist!
Grüße
Johannes
--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.
Re: Größer als bei if-Abfrage
am 18.06.2006 17:04:18 von Andreas Randolf
Hallo Johannes,
> >>> folgendes funktioniert mit PHP 5.1.4, aber nicht
> >>> mit PHP 4.4.2:
> >>> $bilddatei=$_GET['sorte'];
> >>> if ($bilddatei < 10) $bilddatei='0'.$bilddatei;
> >
> >> Was heisst "funktioniert nicht"?
> >
> > Dass PHP 4.4.2 immer true sieht, sodass aus 05
> > 005 wird.
>
> ...also ich wüsste jetzt nicht, warum php4 rausfinden sollte,
> das 05 nicht kleiner als 10 ist!
Aber 5 scheint nicht kleiner zu sein als 10.
Aber egal, substr('0'.$_GET['sorte'], -2) löst das Problem:
$bilddatei='
';
--
Gruß, Andreas
http://www.liegerad-fernweh.de
E-Mail bitte an die Antwortadresse und mit "Usenet" im Betreff
Re: Größer als bei if-Abfrage
am 18.06.2006 20:02:42 von Matthias Wuebbeling
Anni Schmidt wrote:
> Wenn Sorte ein numerischer Wert ist, warum nicht auch so behandeln?
>
> $bilddatei=(int) $_GET['sorte'];
> if ($bilddatei < 10) $bilddatei='0'.$bilddatei;
>
> Somit ist in $bilddatei auch ein Wert, führende Nullen sind ja weg.
Dann aber doch lieber
$bilddatei = $_GET['sorte'];
if((int) $bildatei < 10) $bilddatei='0'.$bilddatei;
Schliesslich muss er ja nicht erst $bilddatei als int haben um dann mit
der Konkatenation wieder einen String daraus zu machen.
>> Wie löse ich das Problem, sodass es mit beiden
>> PHP-Versionen geht? Wie kann ich die Länge der
>> Zeichenkette abfragen?
>
> Wenn du mit der Zeichenkette arbeiten willst, nehme strlen()
Oder ein cast in der Bedingung.
lieben Gruß,
Matze